package com.xg.mina.message;

import com.xg.mina.Utils;
import org.apache.mina.core.buffer.IoBuffer;

public class Constant {
    /**
     * 00，message header 11个字节
     */
    public static final byte fmt00_11 = 0;
    /**
     * 01，message header 7个字节
     */
    public static final byte fmt01_7 = 1;
    /**
     * 10，message header 3个字节
     */
    public static final byte fmt10_3 = 2;
    /**
     * 11，message header 0个字节
     */
    public static final byte fmt11_0 = 3;
    /**
     * 分块开始ID
     */
    public static final int chunk_stream_start = 3;
    /**
     * Set Chunk Size 设置块的大小
     * Basic Header|Message Header|Ex Timestamp|Set chunk size
     */
    public static final byte message_type_1_set_chunk_size = 1;
    /**
     * 取消消息
     * Basic Header|Message Header|Ex Timestamp|Chunk Stream ID
     */
    public static final byte message_type_2_abort_message = 2;
    /**
     * Acknowledgement 确认消息
     * 客户端或服务端在接收到数量与窗口大小相等的字节后发送确认消息到对方。
     * 窗口大小是在没有接收到接收者发送的确认消息之前发送的字节数的最大值。
     * 服务端在建立连接之后发送窗口大小。
     * 本消息指定序列号。序列号,是到当前时间为止已经接收到的字节数。共4 bytes
     * Basic Header|Message Header|Ex Timestamp| Sequence Number
     */
    public static final byte message_type_3_answer = 3;
    /**
     * 用户控制消息
     * Basic Header|Message Header|Ex Timestamp| Event Type| Event Data
     * 本消息承载事件类型和事件数据。
     * 消息数据的头两个字节用于标识事件类型。事件类型之后是事件数据。事件数据字段是可变长的
     */
    public static final byte message_type_4_user_control_message = 4;
    /**
     * 确认窗口大小
     * |Basic Header|Message Header|Ex Timestamp| Acknowledgement Window size |
     */
    public static final byte message_type_5_window_acknowledgement_size = 5;
    /**
     * Set Peer Bandwidth 设置对等端带宽
     * 发送者可以在限制类型字段（1 bytes）把消息标记为硬(0),软(1),或者动态(2)。
     * 如果是硬限制对等端必须按提供的带宽发送数据。
     * 如果是软限制,对等端可以灵活决定带宽,发送端可以限制带宽?
     * 如果是动态限制,带宽既可以是硬限制也可以是软限制
     */
    public static final byte message_type_6_set_peer_bandwidth = 6;
    /**
     * 客户端或服务端发送本消息用于发送音频数据。消息类型 8 ,保留为音频消息
     */
    public static final byte message_type_8_audio_message = 8;
    /**
     * 视频消息的chunk
     */
    public static final byte message_type_9_video_message = 9;
    /**
     * 命令消息已AMF0编码
     */
    public static final byte message_type_20_command_message_amf0 = 20;
    /**
     * 命令消息已AMF3编码
     */
    public static final byte message_type_17_command_message_amf3 = 17;

    public static final String chunk_stream_key = "chunk_stream_key";

    public static final String message_stream_key = "message_stream_key";

    public static final String timestamp_key = "timestamp_key";

    public static final String timestamp_start = "timestamp_start";

    public static final byte amf0_null = 0x05;

    public static final byte amf0_string = 0x02;

    public static final byte amf0_number = 0x00;

    public static final byte amf0_object = 0x03;

    public static final byte amf0_boolean = 0x01;

    public static final int hand_shake_size = 1536;

    public static final byte[] GENUINE_FMS_KEY = new byte[]{71, 101, 110, 117, 105, 110, 101, 32, 65, 100, 111, 98, 101, 32, 70, 108, 97, 115, 104, 32, 77, 101, 100, 105, 97, 32, 83, 101, 114, 118, 101, 114, 32, 48, 48, 49, -16, -18, -62, 74, -128, 104, -66, -24, 46, 0, -48, -47, 2, -98, 126, 87, 110, -20, 93, 45, 41, -128, 111, -85, -109, -72, -26, 54, -49, -21, 49, -82};

    public static final byte[] GENUINE_FP_KEY = new byte[]{71, 101, 110, 117, 105, 110, 101, 32, 65, 100, 111, 98, 101, 32, 70, 108, 97, 115, 104, 32, 80, 108, 97, 121, 101, 114, 32, 48, 48, 49, -16, -18, -62, 74, -128, 104, -66, -24, 46, 0, -48, -47, 2, -98, 126, 87, 110, -20, 93, 45, 41, -128, 111, -85, -109, -72, -26, 54, -49, -21, 49, -82};

    public static final byte[] END_OF_OBJECT_SEQUENCE = new byte[]{0, 0, 9};

    public static final String CONNECT_STR = "030000000000cb1400000000020007636f6e6e656374003ff00000000000000300036170700200066c69766574760008666c61736856657202000d4c4e5820392c302c3132342c320005746355726c02001f72746d703a2f2f35382e3230302e3133312e323a313933352f6c69766574760004667061640100000c6361706162696c697469657300402e000000000000000b617564696f436f646563730040afce0000000000000b766964656f436f6465637300406f800000000000000d766964656f46756e6374696f6e003ff0000000000000000009";

    public static final IoBuffer CONNECT = Utils.strToBuffer(CONNECT_STR);

    public static final byte version = 3;
    public static final int digest_length = 32;

    public static final String c1_str =
            "0000000580000702453593d12516c880e04bed1bfff342f17830864ad90c8aa796311236a2d1089b04bb9c01dc14610fa16edae2170b1e321f44a9f960f9cfe4ec3e17dfcd75c39a9f01da3c53111c3e9a9818ab7f87b242bfd175c2d2773fb86d6d779fca052bb221f5deb1dfd7e1656b1ef815ff9a733b17e578ad50bf65b0be05ae453a640e7a1dca1e860aad83e9db3ab3c0b3cc5ffdaa56acd66f4ecb1de6f45571534a9747270af3d614a0f680552fcfa68acf8e4e3f2092c2b7e581c3d374ac3c5f064f1259b0c78a6fadb63066f45056c8a8332162c1b5062552877cd34490173b8a8c15cf55fe4b42b17b3c407aa76684264d21e2b34566a907c7ad1b72ff30d9c925932b6e5ae7e829aa5f3b796d1d2ba67e3251f0b627a98bc4cb44b055aabe697e3e129408f06eca29b94ed264aefb2acb7c8782a4547daf3852c841cd3584bd4de0ace592fb18dd8b239a7f4d0e89c42c041f2e5dc9f19a2b4b8a7004b05916b6b428715400dc75ab25e0147ae23c45428cf922d175c6a655ea4b9689ba7f6187de36b13d61e574314305d043b1cf488db6b6c1d1f53007d1d036b5af5bca16c70b8b19fcf91159a6379539c019d38afade3f70d5b25946664455a02d2e2577d71060b3d60e74e2fb913e555a832a8dae373f7eb115dd8efd0419b449b90d1bd8d0f4c9d15bd384b839506231688d8e500aa419fcea4dc6fe71d61e942014d1194306a7eb9e2aaa2ea2442c5f1707d14dd222530801ac77aa6044b971785fccbfc65b5f84e127c569d332eb878e7830cf18b032ae32f58db55bff6ef9b22923e83e3eaf4275ac33bbfb59b455d414095b9808dc508692deb1030837e6463e9df5a2fae6071150f110f09b7ac10fe16d5d332bc3d4c4e6830def439c9f6881d2d4c762e7c4badf1980dcfe9e4b723caf10b6dbf077f0c507b3b7f7d59aeb669956284b2e4233d63bad692c1186ed553180312057be4ff75d94db517096a878c5f95b0cf32c69e87afcc6f4ff9196ae929ffac435e454b8aeaab4e1847293d435bebc0453fb107b82b35cc719738ca022b0fdd78e88863bf134141a83a781ad33db75148e79df2c4877643b5d5a30d5a76e232bab81b222563ffcd6889d00c62073d62153120d479ecf498c794a81cf76c3fad8ae0d200882bd89d14a6681fb759e4c941c24b84f969a7f16bfb77660d8eeb6ba3dd12af797c160298d9b8db81168ded99cf5747cb3996adc9f054830c06bd7ee2f56acf2139ad3e52b64af80d6944fe33a1bda38ed821c04c003a93bd3027c5956fcdd6d75e08c6ab3e13467995064a79e5f20a1813fde5996cc2550bec77c214f8ee9cfb9c2bb078988fd99601ada9c4d81fd0b9842f3c89ca7f293dcfada316aec32f7a611a16ba3240ed1f189c1415757b97bb32193e310d1b6fb2d0905ba9d7f81b4e5dde229d38cbee2b0c8dc97112f1d2cf5d8d161444913d59d24b5ad8a66944cecad3b3b9b46f232ced787a3e574450e2f65129c7d0de93f992ee741918e58f6b896f17c999cf33ac5fd78ee2bfa8d42c69daa11685cacaef5ee7f73f52aec605cc1002d7fe936072bf55805196ac99f657892e414e8646827d1c481133cd72954270c71991982bcccb6cbf8b9bfb431802054598b17550bc8a1b06ea4186568b58ff6d0e9a4b20e1ef903df00cf1fb4a38cf55ce9b9a4046d068782122bd72327177db8ce83a2c6f7be6450e132941d9b7b3ffa13cdd519cea9c5c7dd543dd9accc4bf73be07a43a68f05eb7c325c12610399e6f7393ce03b56b78d10aa1cf9402dcc43838519f5473227cf5f6fab6de21baaf559a82b4566787ae6c376b1683f885cb2ac500ce37b06c821cd6e53bc90cf1aa237cc100873c4412bb4c08500a096b6425f230c266054908c1b50dec4c4fb0f8bb7ce353d64f7f275e5b6490b01cf0a52591bcf6ce02d40bc214222faf0ca79f1a9b483caceee0c2458c157cc8140bd277910807654bba1e2b2896008a452e33c99e42cece090eb5ccd2212f66cfebf68559b279a6e0dc4332b2bcb4e5bff35756a2ecfb2b83e15839b5e5433b3663ea36526d9417aceeb690c89dc5f25b8cecb8df645800acb3ac592d4869e35cdabc6bacb846aea6c3840aa89448014e4550fbf66178e172ff890f1447f49e0554f";

    public static final IoBuffer c1Buffer = Utils.strToBuffer(c1_str);

    public static final String c1_digest = "43b69d63488d2a111a361b5f8ab1da0f8b661a510b516f8f4c716a922e0b4db3";

    public static final String c1_calc = "0000000580000702453593d12516c880e04bed1bfff342f17830864ad90c8aa796311236a2d1089b04bb9c01dc14610fa16edae2170b1e321f44a9f960f9cfe4ec3e17dfcd75c39a9f01da3c53111c3e9a9818ab7f87b242bfd175c2d2773fb86d6d779fca052bb221f5deb1dfd7e1656b1ef815ff9a733b17e578ad50bf65b0be05ae453a640e7a1dca1e860aad83e9db3ab3c0b3cc5ffdaa56acd66f4ecb1de6f45571534a9747270af3d614a0f680552fcfa68acf8e4e3f2092c2b7e581c3d374ac3c5f064f1259b0c78a6fadb63066f45056c8a8332162c1b5062552877cd34490173b8a8c15cf55fe4b42b17b3c407aa76684264d21e2b34566a907c7ad1b72ff30d9c925932b6e5ae7e829aa5f3b796d1d2ba67e3251f0b627a98bc4cb44b055aabe697e3e129408f06eca29b94ed264aefb2acb7c8782a4547daf3852c841cd3584bd4de0ace592fb18dd8b239a7f4d0e89c42c041f2e5dc9f19a2b4b8a7004b05916b6b428715400dc75ab25e0147ae23c45428cf922d175c6a655ea4b9689ba7f6187de36b13d61e574314305d043b1cf488db6b6c1d1f53007d1d036b5af5bca16c70b8b19fcf91159a6379539c019d38afade3f70d5b25946664455a02d2e2577d71060b3d60e74e2fb913e555a832a8dae373f7eb115dd8efd0419b449b90d1bd8d0f4c943b69d63488d2a111a361b5f8ab1da0f8b661a510b516f8f4c716a922e0b4db3eb9e2aaa2ea2442c5f1707d14dd222530801ac77aa6044b971785fccbfc65b5f84e127c569d332eb878e7830cf18b032ae32f58db55bff6ef9b22923e83e3eaf4275ac33bbfb59b455d414095b9808dc508692deb1030837e6463e9df5a2fae6071150f110f09b7ac10fe16d5d332bc3d4c4e6830def439c9f6881d2d4c762e7c4badf1980dcfe9e4b723caf10b6dbf077f0c507b3b7f7d59aeb669956284b2e4233d63bad692c1186ed553180312057be4ff75d94db517096a878c5f95b0cf32c69e87afcc6f4ff9196ae929ffac435e454b8aeaab4e1847293d435bebc0453fb107b82b35cc719738ca022b0fdd78e88863bf134141a83a781ad33db75148e79df2c4877643b5d5a30d5a76e232bab81b222563ffcd6889d00c62073d62153120d479ecf498c794a81cf76c3fad8ae0d200882bd89d14a6681fb759e4c941c24b84f969a7f16bfb77660d8eeb6ba3dd12af797c160298d9b8db81168ded99cf5747cb3996adc9f054830c06bd7ee2f56acf2139ad3e52b64af80d6944fe33a1bda38ed821c04c003a93bd3027c5956fcdd6d75e08c6ab3e13467995064a79e5f20a1813fde5996cc2550bec77c214f8ee9cfb9c2bb078988fd99601ada9c4d81fd0b9842f3c89ca7f293dcfada316aec32f7a611a16ba3240ed1f189c1415757b97bb32193e310d1b6fb2d0905ba9d7f81b4e5dde229d38cbee2b0c8dc97112f1d2cf5d8d161444913d59d24b5ad8a66944cecad3b3b9b46f232ced787a3e574450e2f65129c7d0de93f992ee741918e58f6b896f17c999cf33ac5fd78ee2bfa8d42c69daa11685cacaef5ee7f73f52aec605cc1002d7fe936072bf55805196ac99f657892e414e8646827d1c481133cd72954270c71991982bcccb6cbf8b9bfb431802054598b17550bc8a1b06ea4186568b58ff6d0e9a4b20e1ef903df00cf1fb4a38cf55ce9b9a4046d068782122bd72327177db8ce83a2c6f7be6450e132941d9b7b3ffa13cdd519cea9c5c7dd543dd9accc4bf73be07a43a68f05eb7c325c12610399e6f7393ce03b56b78d10aa1cf9402dcc43838519f5473227cf5f6fab6de21baaf559a82b4566787ae6c376b1683f885cb2ac500ce37b06c821cd6e53bc90cf1aa237cc100873c4412bb4c08500a096b6425f230c266054908c1b50dec4c4fb0f8bb7ce353d64f7f275e5b6490b01cf0a52591bcf6ce02d40bc214222faf0ca79f1a9b483caceee0c2458c157cc8140bd277910807654bba1e2b2896008a452e33c99e42cece090eb5ccd2212f66cfebf68559b279a6e0dc4332b2bcb4e5bff35756a2ecfb2b83e15839b5e5433b3663ea36526d9417aceeb690c89dc5f25b8cecb8df645800acb3ac592d4869e35cdabc6bacb846aea6c3840aa89448014e4550fbf66178e172ff890f1447f49e0554f";

    public static final String s1_str = "b6876f2f0d0e0a0d9c14c80a7d686777fabf2f13f117760bde8aad5c2f356a58a29af3af39e35dd5f725df758d46ec87061b9bf7321103109bb06ccbe6d62388711637aafa947ff1ba5e6647a452cfaa6e6aa2a07ba5b116551de13bf404c3651bfb0f158f8e0649ec6d9190bf603b2dcaddce45827f5bd79c3d139041d6f55cd10471619278aa7ee53b0fa49b4ad26527a0aaa91f0680bb43934c846a41e13b46529cd8ca4757af8266541eb02683d7c62e80e53400a07794ecfbfe2edc39742fd64cf91da3a99f09fdbdb9234190e96f10cea3116e1aa55b15a389f2dcfd21b2491acfedc36ff6c02cb0e36d40ccdc519a7f6209990764afaaeda186eac23933dc0820a0771760a4c744110710ee58ab6dbab407c118b66b0557f2ef192b22f5334395ab5af64f213a60284a4e81f5bc3ba9c3fdc17968c6d05ab5e985d8deb91b7464756ab396a413beee623fe41e7b8de1784f5ae0152a3bcb13c0a3f179be65dd33cf90c973a4876206c7462442d305ba225f9a3889d5039c96a68d0f64f3ed97c27d603621e79827aede4b1c7fcf7bd304726f4ac6be8c24033480f9fc87d5b38e49b87581335750a4fab2750f4149bf8655f7a064cc51192e113283bee29ae8f2e834e9cda88f9167260676674f35eda42d8d08f9de2127ef53aaad354496272cca10fa72a08bd9c691502de0851a84b2a78cab86add275007c2335c1b95ced836ce7f60c72cfd2031fffe3a5196757c1f30347a0d5bca052dfd5139831001c9ee812aa5ae17d5e017c41a696a9fd579c009e3dd65add283ab33bd2e43bee8223002d7ee2aadce3261d89bcc686136387b1a05d0c7d854630c01815fb07971f07c49de96e79cc959655515ddc65c0631660c022dd45680e0581230088ba1f8f7fbc79ed354582cc9bd4297739e9da4f499a7226dfda34e45b57e4e312047391c0ec7ef63101c2ccd5eb430ed41d5d1db7cf4396aa787a05cf5fe9e1635c722348f11979f2db46c7c689d59aa732b75e02fbf5ac736fb142ce9a2431f696553e876eb8794afe40108715ab2e48628d4a5d82f6d0f1a713c04237f138cd467755b52fceff2d0f0fb424bae36c1d70b67af2ac4be3545ea3969595ce62db45b79074868fa1959f56b959392676a9dcf19b893c7edd9a22732fb7419192874923fbcfb29d6451f31dab2c4321d5201270a94eee86e810f917c73aa95ac1f27dbdc12f5a25814d422c79864d4ea660be4faeacd597bdceae840857deca495b870a8be12f0c2e7238a7f885f59ee5b3ed945fc22b1c90d9a198317f627adbe98566cab472f826aa9f1e2f94bc1547a9a9a76bd4c3fbad6494dee4f659bfe0de25aa9297a3b94142d770d794851e3d2ec5a90289a4b0ed388ed12fe7900fc5b5b9584c5c118d9fe8fe767c8394bab25a63b4e30764d040f3a26fda327ea0e837f8349409c233f1c0a96e433d28f5978baa7a920e4bd201ed41dc1fbf7c07f7743c8b7dfebe6ebe67dc01a404f73c8fa1b622af01f4b1ee368d0ef50915ec7d5177fa4f35680d9c450f4149067dd9a733fb5635ef07232594311b9d47071a987f14e8b47df551c204920b0a0fe4b142df0877cf0f9bf4a4cc0f4113175cac9670944aed899baf8e2dbb983c9f4a7f7f52f64e619142055e52477169a31dff13b149013be5b0c9126b614f0babce8afdc4d85f561a64b46cab25d54e43d462f41e632f0313f8157f5a648a05321403f7ec624d06c60173722648c0691d225e3b858d3e99865318e0b8a2e5eab6e8e1a24a2ea8112f1b83566443bf81661dbcebabfa84314d9c11053ef6f0f4dfd19629003f3a2f5abd85be01453f6762fb520df5d73e43734f48b24638a6250a3d4e0a7c8939d646bf954704d4ae66d00174c5d8b2084b0251fd4889a46d93e1bb9d5d44d7338b96c8d29a9d81006d8274325a273ba5298ca3711547dea928994685de1db869b3813b4d1ebc4e8b3ec2bd98e9f83e1284e1839a28614350fb89d5d9a78d425a0e7da82c3af6b778b87511a26d4fb4f230388c5899cfa894587d6dff0aaf5a192d024567f8fddfb072f052df3f07d16f3f5dc7d82c6f6d85ecda84f78ade10b7e0551ed852fd89c4eedba42de2759d21d364faffd46784c04109b7cbe7c782c81da0a06f9e29348c05d8b9e74d56";
    public static final IoBuffer s1Buffer = Utils.strToBuffer(s1_str);

    public static final String s1_digest = "1c7fcf7bd304726f4ac6be8c24033480f9fc87d5b38e49b87581335750a4fab2";

    public static final String c2_str = "a64701e526389975fae6154f2c81bb063756c62167f4773118692e3db89407167bb9551d1a1131f2dcff0290921c8f75de275cf06b1fa61cd43138bd64e461cb62e0bf4500d6f17eaf69b95015d3ee6fc2f57be94d6779a6ff2f1a933a9bffd7daa7424c26698ce840bd2ab4cb7eda44456fa159952163e51828b5b5191a104d489fe74ced4cf459e0b3e8c5ff69669eeec1ba391eb118bb62034ded5881b152731252be4b120415e4336fb1b0a17d19e5b90471995c809a652417a03dab750608b26c974a17d1d8266df32e0f18acf37a721a3d0975f2a46bcb8e4d86f69b7617ccf3e08695481e82054acb05971a7a9e961a5d45cc08f7048b41e5e4e0c9ad9414defbb300f00c5a55b610ab822660683104977a7b760a82cc054a7c714cb2d7fde54315b5e2aa13b4b4becf6b3fc7910ead30a6f9a1877e64cdbe65732cf31ca1b59b07f6665496d4112f7672f48cf8aaf3ff1e82fbbe513786ae2c809fdc043777de753cb4f8cf31e1be54785b6720b50ec809cb49479cedba3c52da9f341220cc2861d5c4f2318b249256233c73ad1d1cb4e20b67ebc0b8e550cc17b56f2f7d6c6961d04c963171365118b0a81aebb751e1fa5328276727a75a839c37652758f1af1f3e30b2c7e1498f7094eea5476a7115f33069f0f90953e1d2e498a92a5c8b3ed8be125bf0f49061e1f1085cd3ee62f046a5756e2867850d0ba07a5c4c1ea879de60da492e99dc4e28d8fed2c6231522be6e4c8f6580b1bff29a9e6705f6c76e16cf3ffb0660c727b457d7f3faeb0870fb9c731f68e6dc72407af902b16506d27bcfc586815abd8725640d416d9f27a0f0775926ac9df81e214572d1101317009911b2d4ac0573b7d486ad21c00bc7b066b67bcef0528a8ab6bf1811c74fb9c8124de17318479d694b61874ebb04fd1f7704cf0db79f97ff9495dc28de31e4831db090d15a79fc52c8ff1c02c784a46613da2098c95e052444540f55413c2d3a029e76fe8c880cefbffb3937725db6357ea16d62b010ddc9c1353b533f972b779fbdc47dca1eecda556e5c15ef77d776d02d65233c502ae8fdba18b50ed9d9b2e657edd3b6e04c10e6b259a593a53e8b748197caff5662915c16adf1445e381d5d0646acf5b97ef27ff9e80b590054c6a9e403ddd29187a83666db625f32b2fd9cb1e175b039e88f64a9fdd25fdbabab044c04034e457b4a5abff21c3f8806c6d2df3b4914ff7db28c931b3e67433f0aec0ecfd854422f5d860703f5a7c2b86e41538fc1d2350b5a20f50e41570f04a91dee084086aaa97af09f021abf0c49b1bef8f1359f225d03004ab273b98046db266a2106cbc40c7ac0df0e5c9582b73a32269067b5bfa3af3defab483c7466fdeb6973b0cfe1142d935e519c97e913ff1b29a14b516999f7a0954de03122da8c233164a48050be84fa0e54e71af91b6d0b25ef10339a43962284ff0b0e6f9848daa6faae92620534f928ce6ad7322a5f28420ce221b85ebf72aae179efcb4c89f1eba824fc80f21388e433cf684bf74cab2b8f2e64f0c64572838c8b10a7f6ca9941426f795064001504937cd022f06f61def0764924700ebac71b0e546cd633dc3f57e509e649a1012f86f9f04c22422dc7e5afa1e5be8c14f0ece4c115cabe145c72336d0b3f981e1c49e2132a01fe84314c534183540dfe87bbbb024c7b9172bfee74ae93bcd6378c37ed638f858bef050a1e8325a0642b500500e41601f1786d635796bf4e758914411171ff69958dd8734bc3fac62e0231e0b4d91dd7397fbadc4835b2834042b91b2ab17285578e4717d8e473b52e1efdab2f78784c3a32125ebe5ef5835409583f65fbaf8615b9a902f7c9906b82cc034a6ffa0ecc50110e6615270e878c75e2f3590c35920fe70ce46ddb3cd6529073c48abf8aa0b9f0db6e706d21963f9468fced03af8438858499fd89bbc75da08c8fa7c7d6158a75f4a4334da84ec066f3a80fe402dce716c80c56c424e13867a3ce023a301af19d214e74ac349759602f59dd18e6883faf2174557ff17e7404f346dce1c6c07737d59ac2b145780eeae6b909eb062b0479ac527c3598fad5c83fea7caaed472667cfdb32452c8b37e14c472b0dc5793433e3d1906239d3b8bc49232627db84a4251556709affb0341617de2c";

    public static final IoBuffer c2Buffer = Utils.strToBuffer(c2_str);

    public static final String c2_calc_digest = "7dc29b92918b36c8d9a2f9a694c31b10525b78f1a7f170a67dc0bd8888221f3d";

    public static final String c2_calc = "a64701e526389975fae6154f2c81bb063756c62167f4773118692e3db89407167bb9551d1a1131f2dcff0290921c8f75de275cf06b1fa61cd43138bd64e461cb62e0bf4500d6f17eaf69b95015d3ee6fc2f57be94d6779a6ff2f1a933a9bffd7daa7424c26698ce840bd2ab4cb7eda44456fa159952163e51828b5b5191a104d489fe74ced4cf459e0b3e8c5ff69669eeec1ba391eb118bb62034ded5881b152731252be4b120415e4336fb1b0a17d19e5b90471995c809a652417a03dab750608b26c974a17d1d8266df32e0f18acf37a721a3d0975f2a46bcb8e4d86f69b7617ccf3e08695481e82054acb05971a7a9e961a5d45cc08f7048b41e5e4e0c9ad9414defbb300f00c5a55b610ab822660683104977a7b760a82cc054a7c714cb2d7fde54315b5e2aa13b4b4becf6b3fc7910ead30a6f9a1877e64cdbe65732cf31ca1b59b07f6665496d4112f7672f48cf8aaf3ff1e82fbbe513786ae2c809fdc043777de753cb4f8cf31e1be54785b6720b50ec809cb49479cedba3c52da9f341220cc2861d5c4f2318b249256233c73ad1d1cb4e20b67ebc0b8e550cc17b56f2f7d6c6961d04c963171365118b0a81aebb751e1fa5328276727a75a839c37652758f1af1f3e30b2c7e1498f7094eea5476a7115f33069f0f90953e1d2e498a92a5c8b3ed8be125bf0f49061e1f1085cd3ee62f046a5756e2867850d0ba07a5c4c1ea879de60da492e99dc4e28d8fed2c6231522be6e4c8f6580b1bff29a9e6705f6c76e16cf3ffb0660c727b457d7f3faeb0870fb9c731f68e6dc72407af902b16506d27bcfc586815abd8725640d416d9f27a0f0775926ac9df81e214572d1101317009911b2d4ac0573b7d486ad21c00bc7b066b67bcef0528a8ab6bf1811c74fb9c8124de17318479d694b61874ebb04fd1f7704cf0db79f97ff9495dc28de31e4831db090d15a79fc52c8ff1c02c784a46613da2098c95e052444540f55413c2d3a029e76fe8c880cefbffb3937725db6357ea16d62b010ddc9c1353b533f972b779fbdc47dca1eecda556e5c15ef77d776d02d65233c502ae8fdba18b50ed9d9b2e657edd3b6e04c10e6b259a593a53e8b748197caff5662915c16adf1445e381d5d0646acf5b97ef27ff9e80b590054c6a9e403ddd29187a83666db625f32b2fd9cb1e175b039e88f64a9fdd25fdbabab044c04034e457b4a5abff21c3f8806c6d2df3b4914ff7db28c931b3e67433f0aec0ecfd854422f5d860703f5a7c2b86e41538fc1d2350b5a20f50e41570f04a91dee084086aaa97af09f021abf0c49b1bef8f1359f225d03004ab273b98046db266a2106cbc40c7ac0df0e5c9582b73a32269067b5bfa3af3defab483c7466fdeb6973b0cfe1142d935e519c97e913ff1b29a14b516999f7a0954de03122da8c233164a48050be84fa0e54e71af91b6d0b25ef10339a43962284ff0b0e6f9848daa6faae92620534f928ce6ad7322a5f28420ce221b85ebf72aae179efcb4c89f1eba824fc80f21388e433cf684bf74cab2b8f2e64f0c64572838c8b10a7f6ca9941426f795064001504937cd022f06f61def0764924700ebac71b0e546cd633dc3f57e509e649a1012f86f9f04c22422dc7e5afa1e5be8c14f0ece4c115cabe145c72336d0b3f981e1c49e2132a01fe84314c534183540dfe87bbbb024c7b9172bfee74ae93bcd6378c37ed638f858bef050a1e8325a0642b500500e41601f1786d635796bf4e758914411171ff69958dd8734bc3fac62e0231e0b4d91dd7397fbadc4835b2834042b91b2ab17285578e4717d8e473b52e1efdab2f78784c3a32125ebe5ef5835409583f65fbaf8615b9a902f7c9906b82cc034a6ffa0ecc50110e6615270e878c75e2f3590c35920fe70ce46ddb3cd6529073c48abf8aa0b9f0db6e706d21963f9468fced03af8438858499fd89bbc75da08c8fa7c7d6158a75f4a4334da84ec066f3a80fe402dce716c80c56c424e13867a3ce023a301af19d214e74ac349759602f59dd18e6883faf2174557ff17e7404f346dce1c6c07737d59ac2b145780eeae6b909eb062b0479ac527c3598fad5c83fea7caaed472667cfdb32452c8b37e14c472ba77bd2802d3b456df6f79881d1b82b5bc3b63280adee24291945df62775c3415";

    public static final String c2_digest = "a77bd2802d3b456df6f79881d1b82b5bc3b63280adee24291945df62775c3415";

    public static final byte[] client_version = new byte[] {9, 0, 124, 2};
}
